package org.jeecg.modules.demo.ch.config;


import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;


/**
 *         <dependency>
 *             <groupId>com.baomidou</groupId>
 *             <artifactId>mybatis-plus-generator</artifactId>
 *             <version>3.5.1</version>
 *         </dependency>
 *
 *         <dependency>
 *             <groupId>org.apache.velocity</groupId>
 *             <artifactId>velocity-engine-core</artifactId>
 *             <version>2.3</version>
 *         </dependency>
 *
 *  使用之前先导入依赖
 */

public class Main {
    public static void main(String[] args) {
//        数据库配置
//        192.168.2.13：数据库地址
//        1433：数据库端口
//        aaa：数据库名字
       // String url = "jdbc:sqlserver://192.168.2.237:1433;DatabaseName=Ecustom_JG2_GW2021";
   //     String url = "jdbc:oracle:thin:@192.168.2.233:1521:efgp";
        String url = "jdbc:oracle:thin:@192.168.2.233:1521/topprd";  //oracle生成不了
      //   String url = "jdbc:mysql://localhost:3306/test";
      //  String url = "jdbc:mysql://192.168.2.149:3306/print_sys";
//        数据库账户和密码
        String username = "dsdata";
        String password = "dsdata";
//      作者名字
        String author = "yxx";
//       包信息
        String packageName = "com.xxl.job.executor.mvc";
//        表名字，多张表，逗号隔开
        String[] tables = {"XCBZ_T"}; //oracle表 测试需要大写
//      本项目路径
        String projectPath = System.getProperty("user.dir");
//      包绝对路径
        String outputDir =projectPath+"/src/main/java";
//      xml文件路径
        String outputDirMapper = projectPath+"/src/main/resources/mapper";
        FastAutoGenerator
                .create(url,username, password)
                .globalConfig(builder -> {
                    builder.author(author) // 设置作者
//                             .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(outputDir); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent(packageName)// 设置父包名
                    // .moduleName("system") // 设置父包模块名

                     .pathInfo(Collections.singletonMap(OutputFile.mapperXml, outputDirMapper)); // 设置mapperXml生成路径。注释不生成xml
                })
                .strategyConfig(builder -> {
                    builder.addInclude(tables); // 设置需要生成的表名
                    // .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
//                 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
                .execute();

    }


}
